home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MACD 5
/
MACD 5.bin
/
workbench
/
libs
/
newlooklib.lha
/
newlook
/
createradiobutton.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-10-24
|
4KB
|
121 lines
/*
* CREATERADIOBUTTON.C
*/
#include "newlook.h"
extern void CopyMem(APTR,APTR,ULONG);
static SHORT radioled_pairs[10*2]= {
5,2,
11,2, /* ..1111111111112.. */
12,3, /* .11...........22. */
4,3, /* 11...3333333...22 */
4,4, /* 11..333333333..22 */
12,4, /* 11..333333333..22 */
12,5, /* 11..333333333..22 */
4,5, /* 11...3333333...22 */
5,6, /* .11...........22. */
11,6 /* ..1222222222222.. */
};
static SHORT radioborder_pairs[2][2*9]= {
2,0, 0,2, 0,6, 2,8, 2,7, 1,6, 1,2, 3,0, 13,0,
14,8, 16,6, 16,2, 14,0, 14,1, 15,2, 15,6, 13,8, 3,8
};
struct Gadget *CreateRadioButton(x,y,pn,id)
SHORT x,y;
BOOL pn;
USHORT id;
{
struct Gadget *g;
struct Border *b[2][3]; /* b[0][x]= unselected, b[1][x]= selected */
ULONG UserHandle= SetNewLookHandle(PRIVATE_HANDLE);
if(g= (struct Gadget *)SmartAllocate(GADGETSIZE))
{
if(b[0][0]= (struct Border *)SmartAllocate(BORDERSIZE))
{
if(b[0][1]= (struct Border *)SmartAllocate(BORDERSIZE))
{
if(b[0][2]= (struct Border *)SmartAllocate(BORDERSIZE))
{
if(b[1][0]= (struct Border *)SmartAllocate(BORDERSIZE))
{
if(b[1][1]= (struct Border *)SmartAllocate(BORDERSIZE))
{
if(b[1][2]= (struct Border *)SmartAllocate(BORDERSIZE))
{
b[0][0]->LeftEdge = b[1][0]->LeftEdge = 0;
b[0][0]->TopEdge = b[1][0]->TopEdge = 0;
b[0][0]->BackPen = b[1][0]->BackPen = 0;
b[0][0]->Count = b[1][0]->Count = 10;
b[0][0]->XY = b[1][0]->XY = radioled_pairs;
b[0][0]->FrontPen = 0;
b[0][0]->DrawMode = JAM2;
b[0][0]->NextBorder = b[0][1];
b[1][0]->FrontPen = 3;
b[1][0]->DrawMode = JAM1;
b[1][0]->NextBorder = b[1][1];
b[0][1]->LeftEdge = b[0][2]->LeftEdge = 0;
b[0][1]->TopEdge = b[0][2]->TopEdge = 0;
b[0][1]->BackPen = b[0][2]->BackPen = 0;
b[0][1]->DrawMode = b[0][2]->DrawMode = JAM1;
b[0][1]->Count = b[0][2]->Count = 9;
b[0][1]->XY = radioborder_pairs[0];
b[0][2]->XY = radioborder_pairs[1];
CopyMem((APTR)b[0][1], (APTR)b[1][1], (ULONG)BORDERSIZE);
CopyMem((APTR)b[0][2], (APTR)b[1][2], (ULONG)BORDERSIZE);
b[0][1]->FrontPen = 2;
b[0][1]->NextBorder = b[0][2];
b[0][2]->FrontPen = 1;
b[0][2]->NextBorder = (struct Border *)NULL;
b[1][1]->FrontPen = 1;
b[1][1]->NextBorder = b[1][2];
b[1][2]->FrontPen = 2;
b[1][2]->NextBorder = (struct Border *)NULL;
g->NextGadget = (struct Gadget *)NULL;
g->LeftEdge = x;
g->TopEdge = y;
g->Width = RADIOBUTTON_WIDTH;
g->Height = RADIOBUTTON_HEIGHT;
g->Flags = pn ? GADGHIMAGE|SELECTED : GADGHIMAGE;
g->Activation = GADGIMMEDIATE|RELVERIFY|TOGGLESELECT;
g->GadgetType = BOOLGADGET;
g->GadgetRender = (APTR)b[0][0];
g->SelectRender = (APTR)b[1][0];
g->GadgetText = (struct IntuiText *)NULL;
g->MutualExclude = (LONG)0L;
g->SpecialInfo = (APTR)NULL;
g->GadgetID = id;
g->UserData = (APTR)NULL;
MakePrivateHandlePublic(UserHandle);
return g;
}
}
}
}
}
}
}
if(UserHandle != PRIVATE_HANDLE)
{ SmartFreeAll(PRIVATE_HANDLE);
(void)SetNewLookHandle(UserHandle);
}
return (struct Gadget *)NULL;
}